Portable, computer-peripheral apparatus including a universal serial bus (usb) connector

ABSTRACT

A portable computer-peripheral apparatus comprises a Universal Serial Bus (USB) connector. The apparatus is operable to communicate with a computer terminal (e.g. a ‘PC’). Following connection to the PC, the apparatus initialises (i.e. presents or enumerates itself) as a HID keyboard and then sends to the terminal a first predefined sequence of keycodes automatically without manual interaction; the keycodes complying with the human interface device (HID) keyboard standard protocol. Each keycode represents and simulates a keystroke, such as those performed when a user strikes a key on the PC keyboard. The keycode sequence automates the direct access to content, and/or or the initiation of a task or other process.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 14/657,394, filedMar. 13, 2015, which is a continuation of U.S. application Ser. No.12/160,002, filed on Dec. 3, 2008, which claims priority toInternational Application No. PCT/GB2007/00004, filed on Jan. 5, 2007,which claims priority to GB Application No. GB0600207, filed Jan. 5,2006, the entire contents of each of which is fully incorporated herebyby reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to a portable, computer-peripheral apparatuscomprising a Universal Serial Bus (USB) connector. The apparatus enablesautomated access to content, or automated initiation of a task or otherprocess.

USB is a serial bus standard; devices connecting using the USB standardmust have a physical connector that conforms to the standard: there arecurrently many applicable plug designs (e.g. Series A, Series B, Mini A,Mini B); the USB standard also evolves to cover new plug designs.

2. Description of the Prior Art

There are many and varied tasks that can be initiated and content thatcan be accessed using a personal computer, either locally or remotelyvia a network. Current options for accessing these tasks or content aretypically performed by the user navigating through or interacting withthe PC operating system (OS) or a software application using genericinput apparatus such as a keyboard and mouse. These navigations andinteractions can be complex and lengthy, making them hard to remember;and they are often an abstract set of user actions that have no directrepresentational relationship to the task or content.

The typical options for accessing tasks or content on a PC using theGraphical User Interface (GUI) of the OS, as described above, presentseveral problems to the user; certain tasks are hard to remember,non-descriptive and non-portable. The user faces increased difficultywhen using a PC he is not familiar with, such as a friend's computer orone set up for multiple users, such as a computer in a public place, forexample an airport. Further, a non-computer-literate user (for example achild, an old person, or a technophobe) cannot be expected to managecomplex interactions to get to a task, such as navigating to a URL, butmay be quite happy to interact once they are there—they understand thevalue in the task, not the complicated process to get to it. An exampleof the problem stated above is:

A user is unable to access their web-mail easily, particularly a newsubscriber, because they have to remember a long sequence of actions,such as the correct website URL, their username and password. A typicalset of tasks for this function is too complex to be readily rememberedby a user—for example:

Select a text based menu item from a set of drop-down menus within theOS to start a browser application;

Then type in a URL address in the form of a text string;

Navigate to the login page;

Enter a username and password.

A secondary problem that has been identified is that most interactiveperipheral hardware such as application-specific input devices usuallyrequires a second step after physically connecting to a computer, suchas installing a driver or software. So in cases whereapplication-specific input devices have been created, they are oftencomplicated to set up and are not very portable—being unable to operatewith computers that do not have the required drivers or software.

Existing solutions that relate to the problems outlined above are:

Compact Disks (CD) with autorun files (for example, a CD business card)that automatically launches an application or setup wizard on the CD

“Hotkeys”, such as those found on certain logitech' USB keyboards orother PC peripherals, that can perform a series of tasks or actions froma single key press.

Programmable Keyboard-Macro devices that can be user-programmed with keysequences for example, PI Engineering's X-Keys range of products (referto U.S. Pat. No. 4,964,075).

USB mass storage devices with specific files or software preinstalled,(such software needing to be manually selected and run by an operator)offering physical and portable access to predefined, or user-definedcontent. It is also possible to include an autorun' file on a USB drive:a user typically plugs a USB drive into a PC and the USB automaticallygenerates data that emulates the operation of a CD. But it is possibleto block this kind of CD emulation at the operating system level (andfor security reasons, e.g. reducing the risk of viral infection,blocking could become increasingly common).

SUMMARY OF THE INVENTION

A first aspect of the invention is a portable computer-peripheralapparatus comprising a Universal Serial Bus (USB) connector, theapparatus being operable to communicate with a computer terminal (whichwe shall refer to generically as a ‘PC’) such that, following connectionto the PC, the apparatus initialises (i.e. enumerates or presentsitself) as a HID keyboard and then sends to the terminal a firstpredefined sequence of keycodes automatically without manualinteraction; the keycodes complying with the human interface device(HID) keyboard standard protocol. Each keycode represents and simulatesa keystroke, such as those performed when a user strikes a key on a PCkeyboard. The keycode sequence automates the direct access to content,and/or the initiation of a task or other process.

The apparatus brings three important benefits to the user:

1. The user has a physically descriptive object that represents thegiven task or process that is initiated or implemented by the HIDkeycodes.

2. The user no longer needs to remember or learn the complex actionsthat need to be performed in order to navigate to and run the content orcarry out the task/process—he simply connects the apparatus to the PC.

3. The user can initiate or access the task/process from any personalcomputer terminal running common Operating System software, since theapparatus does not require unique software or drivers.

4. Because HID keyboard emulation is used, there is no risk of theoperating system blocking operation, as may happen with conventional USBdevices that emulate CDs.

The terminal could be, as noted above, a conventional PC (i.e. personalcomputer, including Apple Macintosh computer) but also a personaldigital assistant (PDA), laptop computer, gaming console, portablegaming device, mobile telephone, smartphone, communicator, wirelessinformation device, web browsing device, portable navigation device andindeed any other kind of electronic information terminal.

Other aspects include the following:

-   -   A portable USB compliant apparatus adapted to operate as a        web-mail key that, when plugged into a computer terminal, sends        HID keyboard or CD emulation data to open a browser running on        the terminal to enable web-mail on a remote server to be        accessed.    -   A portable USB compliant apparatus adapted to operate as a toy        that, when plugged into a computer terminal, sends HID keyboard        or CD emulation data to open a browser running on the terminal        and/or to enable web-based story data associated with the toy to        be accessed.    -   A portable USB compliant apparatus adapted to operate as a music        download key that, when plugged into a computer terminal, sends        HID keyboard or CD emulation data to open a media player        application running on the terminal and/or to cause that        application to initiate or request the streaming of a specific        track, or a set of tracks to the terminal.    -   A portable USB compliant apparatus adapted to operate as a        business card from an individual that, when plugged into a        computer terminal, sends HID keyboard or CD emulation data to        open an email application running on the terminal and/or to open        a new e-mail message that is automatically completed with        recipient data, stored on the apparatus, corresponding to the        individual.    -   A portable USB compliant apparatus adapted to operate as a        drawing tool that, when plugged into a computer terminal, sends        HID keyboard or CD emulation data to open a paint or drawing        application running on the terminal.    -   A portable USB compliant apparatus adapted to operate as a key        to a retailer's web site that, when plugged into a computer        terminal, sends HID keyboard or CD emulation data to open a        browser running on the terminal and/or to automatically open        that web site.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example of an embodiment of the invention for theapplication as a USB web-mail key

FIG. 2 is a block diagram showing the functional components of apparatus102 of FIG. 1 in more detail.

FIG. 3 is a flow diagram showing the general sequence of events thatoccurs when apparatus 102 of FIG. 1 is connected to a PC so that apre-programmed action is performed.

FIG. 4 shows an embodiment of the apparatus of the invention

FIG. 5 is a block diagram showing the functional components of theapparatus 401 of FIG. 4.

FIG. 6 is a flow diagram showing the general sequence of events thatoccurs when apparatus 401 of FIG. 4 is connected to a PC

FIG. 7 shows a toy which, when connected to a computer, opens aninternet page containing the next episode of a web comic story.

FIG. 8 shows an “etch-a-sketch” style toy which, when connected to acomputer, opens a standard drawing application and enables the user tocreate drawings using a simple interface on the toy.

FIG. 9 shows a USB storage apparatus which, when connected to acomputer, automatically opens a file stored within memory held on theapparatus itself.

DETAILED DESCRIPTION

The apparatus initiates/accesses a task or content by automaticallyperforming a pre-programmed action whenever the user connects theapparatus to the PC. Alternatively, the apparatus can perform the actionby limited interaction with the user—requiring a two-step sequence. Inthis alternative embodiment, the user connects the apparatus to a PC,thus initiating a pre-programmed sequence of actions; and later pressesa button on the apparatus to initiate a separate pre-programmed oralternatively user-programmed sequence.

In either event, the apparatus emulates a HID keyboard device and sendskeycodes complying with the HID protocol to the PC. The Universal SerialBus (USB) human interface device (HID) is a device class definition ofUSB devices. This device class consists of human interface devices suchas computer keyboards, computer mice, game controllers, and alphanumericdisplay devices. The USB HID protocol is defined in a number ofdocuments provided by the USB Implementers Forum (USB-IF) Device WorkingGroup. The primary document used to describe the USB HID class is theDevice Class Definition for HID 1.11, available from:http://www.usb.org/developers/devclass_docs/HID1_11.pdf.

The task or content is either accessed locally on the PC (for example,open a new email window using the PC's default email application) oraccessed remotely over a network (for example, stream an audio file overthe internet from a remote server, via a unique reference or URL).

In the preferred embodiment, the pre-programmed sequence of actionsinitiating a task or accessing content is made up of a series ofsimulated user-keyboard events or keystrokes. These are sent as HIDprotocol compliant keycodes in a sequence from the apparatus to the PC.The action either inputs directly to the PC's operating system (forexample, to open a URL using internet explorer) and/or controls aseparate software application (for example, opening and initiatingplayback of a network audio file from within windows media player) orperforms data-entry functions (for example, entering a text string intoa field on a form).

In a preferred embodiment, when the apparatus is connected to a PC it‘initialises’, (e.g. emulates, simulates, presents itself or enumerates)as a standard ‘plug and play’ HID keyboard. After starting up correctlyand establishing a connection, the apparatus sends a timed sequence ofkeycodes, simulating a specific sequence of (normally user-generated)keystrokes used to access the given task or content by a methoddetermined by the operating system or application. The sequence ofkeycodes is acted upon by the PC operating system (or application) andthe task is thus initiated or content accessed.

In a preferred embodiment, the method determined by the operating systemwould be a Command Line Interface built into the Operating System (OS)and into which commands can be entered in the form of text (that is, asequence of typed characters) or a similar standard feature of the OSthat enables direct access to programs, files, network paths andinternet URLs via text based commands. On the Windows operating system,the Windows Run box is an example of this type of interface and isaccessed by a sequence of keystrokes comprising Winkey+R. Therefore, ina preferred embodiment, the initial sequence of keycodes sent by theapparatus would be those for ‘Winkey’ and ‘R’ key; this initial sequencebeing followed by a subsequent sequence of keycodes that would beentered into the Run box and which would initiate the task or access thecontent.

The method determined by the application would differ and would bedependent on the application but would also comprise a sequence ofkeycodes. The sequence of keycodes would be recognised by theapplication, which would perform the associated task or process.

In some embodiments the apparatus initialises to simulate more than oneUSB interface, for example, both as a human input device profile (HID)keyboard and a HID mouse. In these cases the keyboard interface is usedto access the task or content; after which a combination of the keyboardinterface profile and additional interface profiles will be used tocontrol or interact with the task or content. For example, an‘etch-a-sketch’ style drawing game/toy transmits keycodes, causing theoperating system (OS) to open a drawing application such as MicrosoftPaint; subsequently mouse events are transmitted from the apparatus,causing drawing actions within the application.

Thus the apparatus takes advantage of inbuilt components of commonlyused operating systems, such components effectively comprisingpre-installed driver applications with limited functionality. Becausecertain profiles such as the HID profiles mentioned above conform toagreed standards for communication, the apparatus, by communicating witha PC only according to the agreed standard, functions properly on a widerange of available PCs, even when the PCs have different operatingsystem software such as MacOS or Windows.

Some examples of additional USB interfaces that use such standard systemdrivers are: pointer, mouse, joystick, gamepad, keyboard (HID); Audio;Mass Storage.

As an enhancement in some embodiments a basic form of bi-directionalcommunication may be achieved as follows: When the apparatus initialisesas a HID keyboard, the user strikes a ‘modifier’ or locking key such asNUMLOCK and/or CAPSLOCK and/or SCROLLLOCK and/or KANALOCK on their PCkeyboard. When these keys are pressed, data is sent from the PC to thekeyboard indicating the state of these keys; this data is typically usedto turn on/off LEDs on the keyboard. This data is normally sent to allkeyboards connected to the PC; therefore if a user hits one such key ontheir PC keyboard, data is typically sent to the apparatus also. Thedata thus received from the PC causes the apparatus to perform anaction. For example, the user presses NUMLOCK on their PC keyboard and asuperhero toy connected to the PC initiates an animated sequence (thebody parts of the toy start to move).

Software can also generate Locking Key events (i.e. software cansimulate the pressing of a Locking Key). Therefore software cancommunicate to the apparatus using this method, without any userinteraction needed. For example, a java applet in a web page couldcommunicate with a superhero toy connected to the PC, initiating ananimated sequence (the body parts of the toy start to move).

The apparatus connects to the PC using the Universal Serial Bus (USB)connection and protocol. USB is currently the most appropriateconnection and communication system for the apparatus since it iscommonly available, normally physically accessible and because itrequires no user set-up when simulating a ‘plug and play’ HID device.The USB port is a familiar, common and easy-to-use connection point towhich HID devices can be connected without the need of driverinstallation. Alternatively, the apparatus can connect using a wirelessprotocol such as Bluetooth or Zigbee but these methods currently imposecertain limitations on the portability of the system because of thesecurity inherent in these systems.

In a wireless embodiment, the apparatus includes both a USB connectionand a wireless connection; the apparatus is first connected physicallyto the PC by the USB connection, initiating transmission of a sequenceof keycodes that performs a ‘pairing’ operation between the apparatusand the PC; thus providing clearance for subsequent automatic wirelesscommunication between the apparatus and the particular PC. Upon suchsubsequent wireless communication, the apparatus performs in a similarway to the embodiments described having physical connections. Forexample, by transmitting via the commonly available Bluetooth HIDprofile (instead of the USB HID profile) in order to simulate keystrokesby transmitting keycodes.

The apparatus may have various physical configurations depending on theapplication required.

For example, the ‘key’ apparatus automatically accessing web-mail(described previously) preferably takes the form of a single USB key-fobstyle apparatus, having text and/or graphics printed on the outside thatrefer to the web-mail provider and possibly the user. This ‘key’apparatus is plugged directly into the USB port of a PC, initiating asequence of simulated keystrokes that automatically access the user'spersonal web-mail page for example.

To provide an example of an alternative configuration, a toy apparatuscomprises two parts—a base (or dock) part that is connected to the PC,for example via a cable; and a separate part, such as an action figure,that may be removed from and plugs into the base part.

The apparatus may also include other input or output devices such assensors or electro-mechanical actuators, responding for example to USBcommunications from the PC and/or other environmental stimuli.

For example, in a further alternative embodiment, a toy embodiment useselectric motors or electro-magnetic actuators to move body parts of anaction figure. The web-based application normally controls the toy(using either bi-directional commands described above, or possibly audiooutput from speakers associated with the PC) such that movements of theactuators are initiated in response to, or synchronise with, changingon-screen content on the PC.

In a further alternative embodiment, a ‘key’ style device accesses aweb-hosted catalogue, and includes a barcode-scanning head so that whenbarcodes in a printed catalogue are swiped, additional information isdisplayed within a corresponding internet page on the store's web site.

The present invention may be applied to many alternative configurations,and used in many varied applications, some examples include:

1. A web-mail key. Plug it into a computer and it takes you directly toyour web-mail inbox.

2. A superhero toy. Plug it into a computer and it takes you to (andperhaps interacts with) the next episode of a web-based comic story.

3. A music flyer. Plug it into a computer and it takes you to WindowsMedia Player and starts to stream a specific track, or set of tracks.

4. An “email me” business card. Plug it into a computer, press a buttonon the card and it takes you directly to your email application with anew message window pre-filled in with the desired address (on thebusiness card).

5. An “etch-a-sketch” toy. Plug it into a computer and it starts adrawing application, such as Microsoft Paint, opens a new blank imageand centres the cursor—the user can then draw using a simple interfaceon the apparatus (in this example the apparatus initialises as both aHID keyboard and a HID mouse).

6. A web-catalogue key. Plug it into a computer and it takes you to thestore's website.

A scenario of use is described below, representing one such embodimentin more detail: The example embodiment is described with reference tothe figures.

Description—Example Embodiment (USB Web-Mail Key) FIG. 1

User 101 has newly subscribed to an internet email service, which can beaccessed through an internet browser application, enabling him to viewand send email messages from any personal computer with an internetconnection.

A web-mail access apparatus 102 comprises a USB-compatible processorcomponent; a USB connector; and external graphical elements (not shown)referring to the web-mail account and the web-mail service in general.

Personal Computer (PC) 103 has an internet connection 104; a USB port105 and an Operating System (OS), incorporating software (e.g. USB HIDprofile) capable of receiving and processing keycodes (simulatingkey-strokes) from an external device (without requiring additionaldrivers); and Graphical User Interface (GUI) 106.

Upon user 101 connecting web-mail access apparatus 102 to the USB portof PC 103, the apparatus powers up and begins an initialisation process.On initialisation apparatus 102 enumerates as a HID keyboard interfaceand is recognised as such by the Operating System.

After the apparatus has been successfully initialised the apparatustransmits (in a timed sequence) an initial series of keycodes to theOperating System. Each keycode represents and simulates a keystroke,such as those performed when a user strikes a key on the PC keyboard.The initial series of keycodes sent by the apparatus 102 to the PC 103are interpreted by the Operating System as a sequence of keystrokes thatlaunch software application 107. (In this example, the softwareapplication 107 is a standard feature of the Operating System thatenables direct access to programs, files, network paths and internetURLs—for example, Windows Run). In response to this keystroke sequencethe Operating System launches the application.

After a programmed time period, (allowing time for the application tofully open) the apparatus 102 sends a second series of timed keycodes tothe PC 103. This second series of keycodes is interpreted by theOperating System as a sequence of keystrokes that represent data entryto the application 107 in the form of a text string URL (UniversalResource Locator). In this example the URL represents the website of theinternet email service subscribed to by user 101. In the preferredembodiment, the URL includes a command for automated user login (forexample, a query string including username and password that will beprocessed by a script running on the server). The last keycode sent fromthe apparatus 102 to PC 103 is interpreted by the OS as a confirmationand execution command, and is sent to the application 107 (for example,the ENTER key). The first and/or second set of keycodes (or any otherset) can include unique data—e.g data identifying or authenticating auser and/or the apparatus 102.

Application 107 then opens the URL using the Operating System's defaultinternet browser 108; the browser in turn displays the internet page ofthe web-mail service subscribed to by user 101. After initiating accessto the URL, application 107 automatically closes (for illustrationpurposes the application is shown open in FIG. 1.)

In an alternative embodiment, where a higher level of security isdesired, the URL entered into application 107 may not include a fullcommand for automated login, but instead only a part of the login, suchas the username. In this case, the web page reached by the URL is alogin page for user 101, with only a password entry being required. Thepassword may then be entered by the user in the traditional method usingthe keyboard or may be entered by apparatus 102 as an automated seriesof keycodes representing the password string; upon the user pressing abutton on apparatus 102, once.

In the example embodiment of FIG. 1, the user 101 has previouslysubscribed to a web-mail service. Apparatus 102 has been pre-programmed(for example at the store where the subscription was purchased) with theuser's unique identifier information and thus represents his personalaccess to his web-mail. The web service is graphically represented onthe case of the apparatus 102. The user thus becomes accustomed tothinking of his web-mail access as apparatus 102 and carries theapparatus with him; using it as a universal ‘key’ to access his email onany compatible internet-connected computer, simply and easily.

Since most Operating Systems include the necessary functionality (suchas the HID software) allowing the application such as 107 to initiateweb-mail access, the user can gain almost universal access, from a verywide range of computer terminals.

So, in use, user 101 connects web-mail access apparatus 102 to the USBport of an internet connected PC, such as 103. The apparatus thenautomatically sends a series of keycodes to the PC that control theOperating System 106 as previously described. This results in thedefault internet browser launching and automatically opening theinternet page of the user's web-mail service.

Technical and functional details of the web-mail key example embodimentare described below with reference to the figures.

Example Embodiment—Detailed Description (USB Web-Mail Key) FIG. 2

FIG. 2 is a block diagram showing the functional components of apparatus102 in more detail.

Apparatus 102 comprises a USB connector 201; a USB-compatiblemicrocontroller 202 and an external oscillator 203. USB microcontroller202 comprises a CPU 204; a USB interface block 205; program memory 206;RAM 207; data memory 208; and an oscillator block 209.

USB microcontroller 202 is programmed with firmware (application codeand USB descriptors) that enables apparatus 102 to enumerate as a HIDkeyboard interface when connected to a PC.

When apparatus 102 is connected to the USB port of a PC, USBmicrocontroller 202 powers up and begins to run firmware stored inprogram memory 206.

After successfully enumerating as a HID keyboard, the microcontrolleraccesses data stored in data memory 208; the data having beenpre-programmed and representing the action to be performed (in thisexample, control the OS to open the user's web-mail internet page usingthe default internet browser). The data read from memory is aninstruction set that enables the microcontroller to perform the action.

The USB microcontroller 202 then performs the action by interpreting theinstruction set and sending a series of paced USB data packets (orreports) to the PC via USB interface block 205; each packet of data sentrepresenting a keycode (or combination of keycodes). This series ofkeycodes simulates a specific sequence of keystrokes that control theOperating System to carry out the action (in this example, resulting inthe default internet browser of the PC automatically launching andopening the internet page of the user's web-mail service).

FIG. 3

FIG. 3 is a flow diagram showing the general sequence of events thatoccurs when apparatus 102 is connected to a PC so that a pre-programmedaction is performed.

301—Apparatus 102 is connected to the USB port of a PC

302—Apparatus powers up

303—Apparatus communicates with the PC and enumerates as a HID keyboard

304—Instruction set is read from memory

305—First keycode sequence is sent to PC

306—Check instruction set for next keycode sequence

307—Wait for a period; then send second keycode sequence

308—End

FIG. 4

FIG. 4 shows an alternative embodiment 401 of the apparatus, having abutton, 411 used to initiate a second sequence of operations.

FIG. 5

FIG. 5 is a block diagram showing the functional components of anapparatus 401. The apparatus comprises a USB connector; a USB-compatiblemicrocontroller 502; an external oscillator 503; and a momentary pushswitch 411. USB microcontroller 502 may comprise a CPU 504; a USBinterface block 505; program memory 506; RAM 507; data memory 508; anoscillator block 509; and a general purpose input/output port (GPIO)510.

USB microcontroller 502 is programmed with firmware (application codeand USB descriptors) that enables the apparatus to enumerate as a HIDkeyboard interface when connected to a PC, and subsequently to transmitkeycodes in timed sequences.

When the apparatus is connected to the USB port of a PC, USBmicrocontroller 502 powers up and begins to run firmware stored inprogram memory 506.

After successfully enumerating as a HID keyboard, the microcontrolleraccesses data stored in data memory 508; the data having beenpre-programmed and representing the action to be performed (in thisexample, control the OS to open the user's web-mail internet page usingthe PC's default internet browser). The data read from memory is aninstruction set that enables the microcontroller to perform the action.

The USB microcontroller 502 then performs part of the action byinterpreting the instruction set and sending a series of paced USB datapackets (or reports) to the PC via USB interface block 505; each packetof data sent representing a keycode (or combination of keycodes). Thisseries of keycodes simulates a specific sequence of keystrokes thatcontrol the Operating System to carry out part of the action (in thisexample, resulting in the default internet browser of the PCautomatically launching and opening the login page of the user'sweb-mail service). The microcontroller then waits for the user to pressswitch 511. When the switch is pressed a second series of keycodes aresent to the PC and the remaining part of the action is performed (inthis example, the password is entered into the login page of the user'sweb-mail service).

FIG. 6

FIG. 6 is a flow diagram showing the general sequence of events thatoccurs when apparatus 401 (including a button) is connected to a PC sothat a set of pre-programmed actions is performed, followed by auser-initiated second sequence of pre-programmed actions.

601—Apparatus is connected to the USB port of a PC

602—Apparatus powers up

603—Apparatus enumerates as a HID keyboard

604—First instruction set is read from memory

605—First keycode sequence is sent to PC

606—Check instruction set for next keycode sequence

607—Wait for a period; then send next keycode sequence

608—Check for next instruction

609—Wait for button press

610—Next instruction set is read from memory

611—Send next keycode sequence

612—End

Examples of Variants

Selected alternative embodiments of the present invention are brieflydescribed below. The example embodiments are described with reference tothe figures.

FIG. 7

FIG. 7 shows a ‘superhero’ toy which, when connected to a computer,opens an internet page containing the next episode of a web comic story.

Toy 701 comprises a USB processor component; and a USB connector andcable. Toy 701 may also incorporate sensors and electro-mechanicalactuators; for example a solenoid-controlled mechanism to open and closethe mouth of the toy, in response to signals either a) from a microphonesensor included in the toy, or b) from signals from the PC, for examplerepresenting ‘modifier’ keycode (such as ‘Caps Lock’ or ‘Num-Lock’).

Personal Computer (PC) 702 has an internet connection 705; a USB port703; and an Operating System (OS) and Graphical User Interface (GUI).

When a user connects apparatus 701 to the USB port of PC 702, theapparatus powers up and initialises. On initialisation, apparatus 701enumerates as a HID keyboard interface and is recognised by theOperating System.

After the apparatus has been successfully initialised the apparatussends an initial series of paced keycodes to the Operating System. Eachkeycode represents a keystroke, such as are sent when a user strikes akey on the PC keyboard. The initial series of keycodes sent by theapparatus 701 to the PC 702 is interpreted by the Operating System as asequence of keystrokes that universally launch a system softwareapplication. (In this example, the software application is a standardfeature of the Operating System that enables direct access to programs,files, network paths and internet URLs—for example, Windows Run). Inresponse to this keystroke sequence the Operating System launches theapplication.

After a programmed time period, the apparatus 701 sends a second seriesof paced keycodes to the PC. This second series of keycodes areinterpreted by the Operating System as a sequence of keystrokes thatrepresent data entry to the system application in the form of a textstring URL (Universal Resource Locator). The URL represents the internetpage of the web comic story. In the preferred embodiment, the URLincludes a user ID (for example, a query string including a user IDnumber that will be processed by a server side script). Passing a userID to the remote server enables content to be unique to the user and/ordifferent content to be accessed incrementally (for example, episode 1of the story is shown when the apparatus is first connected; episode 2on the second connection and so on).

The last keycode sent from the apparatus 701 to the PC is interpreted bythe OS as a confirmation and execution command for the systemapplication (for example, ENTER key). The system application then opensthe URL using the Operating System's default internet browser 704; thebrowser in turn displays the internet page of the web comic story.

So, in use, a user connects superhero toy 701 to the USB port of aninternet-connected PC 702. The apparatus then automatically sends aseries of keycodes to the PC that control the Operating System aspreviously described. This results in the default internet browser 704launching and automatically opening an internet page containing the nextepisode of a web comic story.

Various enhancements to this example embodiment may be achieved by theaddition of simple sensors and electro-mechanical actuators to the toy.For example, as the web comic story plays within the internet browser,the body parts of toy 701 may be animated by electro-magnets orminiature motors. The story on screen and the toy may then appear tointeract with each other (for example, a character on the PC screen andthe superhero toy 701 may move in unison); or the toy may appear to beenhanced by the multimedia capabilities of the PC (for example, audiofrom the PC, in the form of dialog in the superhero's voice, may besynchronised with the automated mouth movements of toy 701). Addingsimple sensors to toy 701, to detect push and rotation for example, mayenable control of the content within internet browser 704 by means ofmanual mechanical interactions with toy 701.

A further enhancement is USB communication back from the PC 702 to thetoy 701. This enables content within the internet browser to sendcommands to toy 701 and thus control the toy's movements in response tospecific timed events within the content (for example, a characterwithin the story on-screen may ask a question and the toy may reply—themouth movements of the toy being synchronised with the audio).

It is desirable to maintain USB communication within a ‘driverless’protocol. So for example, in the case of an interactive toy such as Toy701, an additional USB interface (again using only standard systemdrivers) allows communication from the PC to the Toy 701, enablingsignals (that can be interpreted by the processor of Toy 701) forcontrol of the Toy 701 to be sent. Signals thus pass from theapplication, via the PC to the toy. For example, a generic HID interfaceor USB Audio interface may be used.

A significant advantage of the invention applied to Toys is that thenormal input devices such as a keyboard and mouse may be covered,disabled or removed entirely by unplugging from the PC for the durationof the interaction; thus ensuring that children playing with the PC byuse of the Toy cannot access or damage other data held on the PC.

FIG. 8

FIG. 8 shows an “etch-a-sketch” style toy which, when connected to acomputer, opens a standard drawing application and enables the user tocreate drawings using a simple interface on the toy.

Toy 801 comprises a USB processor component; a USB connector and cable;and a simple user interface 805. User interface 805 may for examplecomprise two rotary knobs and two push buttons.

Personal Computer (PC) 802 has a USB port 803; and an Operating System(OS) and Graphical User Interface (GUI).

When a user connects apparatus 801 to the USB port of PC 802, theapparatus powers up and initialises. On initialisation, apparatus 802enumerates as both a HID keyboard interface and a HID mouse interfaceand is recognised by the Operating System.

After the apparatus has been successfully initialised the apparatussends an initial series of paced keycodes to the Operating System. Eachkeycode represents a keystroke, such as are sent when a user strikes akey on the PC keyboard. The initial series of keycodes sent by theapparatus 801 to the PC 802 are interpreted by the Operating System as asequence of keystrokes that universally launch a system softwareapplication. (In this example, the software application is a standardfeature of the Operating System that enables direct access to programs,files, network paths and internet URLs—for example, Windows Run). Inresponse to this keystroke sequence the Operating System launches theapplication.

After a programmed time period, the apparatus 801 sends a second seriesof paced keycodes to the PC. This second series of keycodes areinterpreted by the Operating System as a sequence of keystrokes thatrepresent data entry to the system application in the form of a textstring. The text string represents the name of a standard drawingapplication, such as Microsoft Paint.

The last keycode sent from the apparatus 801 to the PC is interpreted bythe OS as a confirmation and execution command for the systemapplication (for example, ENTER key). The system application then opensthe drawing application 804.

After the drawing application has been opened, the user can useinterface 805 to control the movement of the cursor within the drawingapplication on the PC screen and thus create drawings using the toy as anew input apparatus. When the interface is acted upon, data is sent fromapparatus 801 to the PC representing mouse X, Y and button events (forexample, turning a left rotary knob may cause data representing a mousebutton press and cursor movements from left to right to be sent to thePC, resulting in a horizontal line being drawn within the drawingapplication).

Interface 805 may also be used to initiate other actions with thedrawing application by sending keystroke sequences to the PC (forexample, pressing a left button may cause a series of keycodes to besent to the PC, resulting in the canvas being cleared).

So, in use, a user connects toy 801 to the USB port of an internetconnected PC 802. The apparatus then automatically sends a series ofkeycodes to the PC that control the Operating System as previouslydescribed. This results in a standard drawing application, such asMicrosoft Paint, automatically launching. The user can then createdrawings using interface 805 on the toy.

It can be appreciated from the above examples that there is significantvalue in the intuitive nature of the interaction, particularly forcertain sections of the market such as children. The apparatus is eithermarked in such a way as to become associated visually with the action oractions it performs, for example by printed graphics and/or text; or isdirectly shaped into a configuration that is representative of theinteraction, for example the ‘etch-a-sketch’ or ‘superhero’configurations. In some cases, a proprietary shape may be used underlicense, such as a Disney® character (or characters), in both theapparatus and the content on the PC.

FIG. 9

FIG. 9 shows a USB storage apparatus which, when connected to acomputer, automatically opens a file stored within memory held on theapparatus itself. The file may be an application or any other type offile recognised by the operating system.

Apparatus 901 comprises a USB processor component; a mass storagecomponent; and a USB connector.

Personal Computer (PC) 902 has a USB port 903; and an Operating System(OS) and Graphical User Interface (GUI).

When a user connects apparatus 901 to the USB port of PC 902, theapparatus powers up and initialises. On initialisation, apparatus 902enumerates as both a HID keyboard interface and a Mass Storage interfaceand is recognised by the Operating System.

After the apparatus has been successfully initialised the apparatussends an initial series of paced keycodes to the Operating System. Eachkeycode represents a keystroke, such as are sent when a user strikes akey on the PC keyboard. The initial series of keycodes sent by theapparatus 901 to the PC 902 are interpreted by the Operating System as asequence of keystrokes that universally launch a system softwareapplication. (In this example, the software application is a standardfeature of the Operating System that enables direct access to programs,files, network paths and internet URLs—for example, Windows Run). Inresponse to this keystroke sequence the Operating System launches theapplication.

After a programmed time period, the apparatus 901 sends a second seriesof paced keycodes to the PC. This second series of keycodes areinterpreted by the Operating System as a sequence of keystrokes thatrepresent data entry to the system application in the form of a textstring. The text string represents the file-path of the file stored onthe mass storage component of the apparatus 901.

The last keycode sent from the apparatus 901 to the PC is interpreted bythe OS as a confirmation and execution command for the systemapplication (for example, ENTER key). The system application then opensor runs the file and displays the result 904.

1. A method of providing secure communications between a computingdevice and a remote communications server, comprising the steps of: (a)a user inserting or connecting a USB autorun peripheral device to thecomputing device; (b) the USB autorun peripheral device sending to thecomputing device a sequence of data complying with a standard protocol;(c) the sequence of data being processed at the computing device toautomatically open a secure connection to the remote communicationsserver; and (d) in which the sequence of data, without any prior inputof a website address or login data for that website or prior input ofunique data identifying the device at any earlier time by a user,automates the direct access, over the internet, to the remotecommunications server.
 2. The method of claim 1 wherein the USB autorunperipheral device does not require the installation of a driver orsoftware on the computing device.
 3. The method of claim 1 wherein thesequence of data includes at least one of a URL, unique identifierinformation, a login, a password, a query string, a launch command, aconfirmation command, and an execution command.
 4. The method of claim 1wherein the USB autorun peripheral device automates access to web-mail.5. The method of claim 1 wherein content within an Internet browser onthe computing device sends commands to the USB autorun peripheraldevice.
 6. The method of claim 1 wherein the USB autorun peripheraldevice is in bi-directional communication with the computing device. 7.The method of claim 1 wherein signals are sent from the computing deviceto control the USB autorun peripheral device and are interpreted by aprocessor of the USB autorun peripheral device.
 8. The method of claim 1further comprising an output device integrated with the USB autorunperipheral device.
 9. The method of claim 8 wherein the output deviceresponds to USB communications from the computing device.
 10. The methodof claim 1 wherein the USB autorun peripheral device integrates amomentary switch.
 11. The method of claim 1 wherein the USB autorunperipheral device is programmed with unique information that representspersonal access to web-mail.
 12. The method of claim 1 wherein contentin a web browser is controlled by manual mechanical interactions withthe USB autorun peripheral device.
 13. The method of claim 1 wherein theUSB autorun peripheral device sends the sequence of data when a buttonon the USB autorun peripheral device is pressed.
 14. The method of claim1 wherein the USB autorun peripheral device only sends a portion oflogin data.
 15. The method of claim 1 wherein the USB autorun peripheralfacilitates delivery of unique content to the user.
 16. The method ofclaim 1 wherein the new content is incrementally delivered eachsubsequent time the USB autorun peripheral is connected.
 17. A systemcomprising a USB autorun peripheral device and a computing device, inwhich, in response to a user inserting or connecting the USB autorunperipheral device to the computing device, (a) the USB autorunperipheral device sends to the computing device a sequence of datacomplying with a standard protocol, (b) the sequence of data isprocessed at the computing device to automatically open a secureconnection to a remote communications server; and (c) in which thesequence of data, without any prior input of a website address or logindata for that website or prior input of unique data identifying thedevice at any earlier time by a user, automates the direct access, overthe internet, to the remote communications server.
 18. The system ofclaim 17, in which the system includes the remote communications server.19. A system comprising a USB autorun peripheral device and a remotecommunications server, in which, in response to a user inserting orconnecting the USB autorun peripheral device to a computing device, (a)the USB autorun peripheral device sends to the computing device asequence of data complying with a standard protocol, (b) the sequence ofdata is processed at the computing device to automatically open a secureconnection to the remote communications server; and (c) in which thesequence of data, without any prior input of a website address or logindata for that website or prior input of unique data identifying thedevice at any earlier time by a user, automates the direct access, overthe internet, to the remote communications server.